
// 上下文
// this 只能在函数内部使用
// this指针 指向当前函数的拥有者 （拥有者称为 执行上下文）
// js 中的call()和apply()方法 可以改变上下文



// 例子1
// var pet={
//     words:"abcdefg",
//     speek:function(){
//         console.log(this.words)
//         // 当前的this指针指向pet对象
//         console.log( this === pet)
//     }
// }
// pet.speek();


// 例子2
// function pet(words){
//     this.words =words;

//     console.log( this.words);
//     //　当期的this指针指向 node环境下的顶层 global变量 ，在浏览器环境中 this指向 window
//     console.log( this === global);
// }
// pet("abcd");


// 例子3
function pet(words){
    this.words=words;
    this.speek=function(){
        console.log(this.words);

        //在构造函数中， this 指针指向 创建的实例对象cat
        console.log(this);
        console.log(this===cat);
    }
}
var cat= new pet('miao');
cat.speek();